package com.iwomy.secureplat.platform.dto;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 设备信息表
 *
 * @author pig
 * @date 2023-11-21 15:14:16
 */
@Data
@Schema(description = "出库列表")
public class BasicInventoryListDTO extends Model<BasicInventoryListDTO> {

	/**
	 * ID
	 */
	@TableId(type = IdType.ASSIGN_ID)
	@Schema(description="ID")
	private Long id;

	/**
	 * 设备id
	 */
	@Schema(description="设备id")
	private Long deviceId;

	/**
	 * 设备型号
	 */
	@Schema(description="设备型号")
	private Long deviceModelId;

	/**
	 * 设备类型
	 */
	@Schema(description="设备类型")
	private Long deviceTypeId;

	/**
	 * 设备id
	 */
	@Schema(description="设备id")
	private Long deviceIds[];

	/**
	 * 设备IMEI
	 */
	@Schema(description="设备IMEI")
	private String imei;

	/**
	 * 出库模式 10默认出库；20平级出库
	 */
	@Schema(description="出库模式 10默认出库；20平级出库")
	private Integer outInventoryType;

	/**
	 * 通讯费配置(10不需要；20需要)
	 */
	@Schema(description="通讯费配置(10不需要；20需要)")
	private Integer isCommunicationFees;

	/**
	 * 配置方式(10配送；20代付)
	 */
	@Schema(description="配置方式(10配送；20代付)")
	private Integer deliveryMethod;

	/**
	 * 出库单号
	 */
	@Schema(description="出库单号")
	private String outInventoryNumber;

	/**
	 * 出库单位
	 */
	@Schema(description="出库单位")
	private Long deptId[];

	/**
	 * 客户单位
	 */
	@Schema(description="客户单位")
	private Long customerDeptId;

	/**
	 * 设备过户单位id
	 */
	@Schema(description="设备过户单位id")
	private Long transferDeptId;

	/**
	 * 平台使用年限
	 */
	@Schema(description="平台使用年限")
	private Integer platformFeeYears;

	/**
	 * 平台到期时间
	 */
	@Schema(description="平台到期时间")
	private LocalDateTime platformExpireDate;

	/**
	 * 短信剩余（条）,无限制为 999999
	 */
	@Schema(description="短信剩余（条）,无限制为 999999")
	private Integer smsRemainNum;

	/**
	 * 语音剩余（分钟）无限制为 999999
	 */
	@Schema(description="语音剩余（分钟）无限制为 999999")
	private Integer ttsRemainNum;

	/**
	 * 设备数
	 */
	@Schema(description="设备数")
	private Integer deviceSum;

	/**
	 * 赠送数量，无限制为 999999
	 */
	@Schema(description="赠送数量，无限制为 999999")
	private Integer deliveryNum;

	/**
	 * 剩余数量，无限制为 999999
	 */
	@Schema(description="剩余数量，无限制为 999999")
	private Integer remainNum;

	/**
	 * 短信总限限
	 */
	@Schema(description="短信总限限")
	private Integer smsTotalLimit;

	/**
	 * 短信日限
	 */
	@Schema(description="短信日限")
	private Integer smsSumDay;

	/**
	 * 短信月限
	 */
	@Schema(description="短信月限")
	private Integer smsSumMonth;

	/**
	 * 短信总限制剩余次数
	 */
	@Schema(description="短信总限制剩余次数")
	private Integer smsTotalLimitRemain;

	/**
	 * 短信日限剩余次数
	 */
	@Schema(description="短信日限剩余次数")
	private Integer smsSumDayRemain;

	/**
	 * 短信月限剩余次数
	 */
	@Schema(description="短信月限剩余次数")
	private Integer smsSumMonthRemain;

	/**
	 * 语音总限限
	 */
	@Schema(description="语音总限限")
	private Integer ttsTotalLimit;

	/**
	 * 语音日限
	 */
	@Schema(description="语音日限")
	private Integer ttsSumDay;

	/**
	 * 语音月限
	 */
	@Schema(description="语音月限")
	private Integer ttsSumMonth;

	/**
	 * 语音总限制剩余次数
	 */
	@Schema(description="语音总限制剩余次数")
	private Integer ttsTotalLimitRemain;

	/**
	 * 语音日限剩余次数
	 */
	@Schema(description="语音日限剩余次数")
	private Integer ttsSumDayRemain;

	/**
	 * 语音月限剩余次数
	 */
	@Schema(description="语音月限剩余次数")
	private Integer ttsSumMonthRemain;

	/**
	 * 代付到期时间
	 */
	@Schema(description="代付到期时间")
	private LocalDateTime expirationDate;


	/**
	 * 是否初始化 (10是；20否)
	 */
	@Schema(description="是否初始化 (10是；20否)")
	private Integer isInitialize;

	/**
	 * 创建人
	 */
	@Schema(description="创建人")
	private String createBy;

	/**
	 * 创建时间
	 */
	@Schema(description="创建时间")
	private LocalDateTime createTime[];

	/**
	 * 修改人
	 */
	@Schema(description="修改人")
	private String updateBy;

	/**
	 * 修改时间
	 */
	@Schema(description="修改时间")
	private LocalDateTime updateTime;

	/**
	 * 出库时分配短信数
	 */
	@Schema(description="出库时分配短信数")
	private Integer smsNum;

	/**
	 * 出库时分配语音数
	 */
	@Schema(description="出库时分配语音数")
	private Integer ttsNum;

	/**
	 * 出库时分配平台年限
	 */
	@Schema(description="出库时分配平台年限")
	private Integer platformYears;

	/**
	 * 单位限制层级
	 */
	@Schema(description="单位限制层级")
	private Integer deptLimit;

}